package session

import (
	"fmt"
	"os"
	"path/filepath"

	"github.com/google/uuid"
)

type Session struct {
	Token    string
	TempDir  string
	FilePath string
}

func NewSession() *Session {
	token := uuid.New().String()
	tempDir := filepath.Join("temp", token)

	// 创建临时目录
	if err := os.MkdirAll(tempDir, 0o755); err != nil {
		panic(fmt.Sprintf("创建临时目录失败: %v", err))
	}

	return &Session{
		Token:   token,
		TempDir: tempDir,
	}
}

func (s *Session) SetFilePath(filePath string) {
	s.FilePath = filePath
}

func (s *Session) GetFilePath() string {
	return s.FilePath
}

func (s *Session) GetTempDir() string {
	return s.TempDir
}

func (s *Session) Cleanup() {
	if s.TempDir != "" {
		os.RemoveAll(s.TempDir)
	}
}
